package com.freemyleft.left.zapp.selectimage;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.DisplayMetrics;


import com.freemyleft.left.zapp.selectimage.bean.Image;

import java.lang.ref.WeakReference;


import static com.freemyleft.left.zapp.selectimage.FileUtils.saveNativePath;

/**
 * Created by Administrator on 2017/6/7.
 */
public class BitmapUtils {
    /**通过本地图片地址转成bitmap*/
    public static Bitmap convertToBitmap(String path, int w, int h) {
        BitmapFactory.Options opts = new BitmapFactory.Options();
        // 设置为ture只获取图片大小
        opts.inJustDecodeBounds = true;
        opts.inPreferredConfig = Bitmap.Config.ARGB_8888;
        // 返回为空
        BitmapFactory.decodeFile(path, opts);
        int width = opts.outWidth;
        int height = opts.outHeight;
        float scaleWidth = 0.f, scaleHeight = 0.f;
        if (width > w || height > h) {
            // 缩放
            scaleWidth = ((float) width) / w;
            scaleHeight = ((float) height) / h;
        }
        opts.inJustDecodeBounds = false;
        float scale = Math.max(scaleWidth, scaleHeight);
        opts.inSampleSize = (int) scale;
        WeakReference<Bitmap> weak = new WeakReference<Bitmap>(BitmapFactory.decodeFile(path, opts));
        return Bitmap.createScaledBitmap(weak.get(), w, h, true);
    }
    /**压缩图片后返回Image对象*/
    public static Image compressImagePath(Activity activity, String path, int w, int h){
        Bitmap bitmap =convertToBitmap(path, w, h);
        String imageName = String.valueOf(System.currentTimeMillis()) + ".jpg";
        String imagePath = saveNativePath(bitmap, imageName);
        return FileUtils.getImage(activity, imagePath, imageName);
    }
    public static int getScreenWidth(Activity activity){
        DisplayMetrics metrics=new DisplayMetrics();
        activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
        return metrics.widthPixels;
    }
    public static int getScreenHight(Activity activity){
        DisplayMetrics metrics=new DisplayMetrics();
        activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
        return metrics.heightPixels;
    }
}
